package com.mindcraft.base.utils;

import org.springframework.data.redis.core.RedisTemplate;

import java.util.concurrent.TimeUnit;

public class RedisUtils {
    private RedisTemplate<String, Integer> redisTemplate;

    public RedisUtils(RedisTemplate<String, Integer> redisTemplate) {
        this.redisTemplate = redisTemplate;
    }

    public void updateValueWithTime(String key) {
        // 初始化键对应的值为 0
        redisTemplate.opsForValue().set(key, 0);

        // 创建一个后台线程，周期性地更新值
        Thread updateThread = new Thread(() -> {
            while (true) {
                try {
                    // 休眠 1 秒
                    TimeUnit.SECONDS.sleep(1);

                    // 获取当前值
                    int currentValue = redisTemplate.opsForValue().get(key);

                    // 更新值（这里假设值每次增加 1）
                    redisTemplate.opsForValue().set(key, currentValue + 1);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        });

        // 启动后台线程
        updateThread.start();
    }

    public void resetValue(String key) {
        // 重置键对应的值为 0
        redisTemplate.opsForValue().set(key, 0);
        // 创建一个后台线程，周期性地更新值
    }
}
